/**
 * @file collection.c
 * @brief Fichier source du module collection.
 *
 * @author Rachid Delory, Mamadou Keita, Florian Bernard
 */

/* *********************************************************************

                       Librairies de collection                          

********************************************************************* */

#include "collection.h"

/* *********************************************************************

                        Fonctions                                      

********************************************************************* */

void init_Col(Collection * collection)
{
  if(collection)
    {
      collection->id = 0;
      collection->nbLivre = 0;
      collection->libelle = NULL;
      collection->maj = 0;
      collection->sup = 0;
    }
}

void liberer_Col(Collection * collection)
{
  if(collection)
    {
      collection->id = 0;
      collection->nbLivre = 0;
      if(collection->libelle)
	{
	  free(collection->libelle);
	  collection->libelle = NULL;
	}
    }
}

Collection * creer_Col()
{
  Collection *collection;
  collection = (Collection *) malloc ( 1 * sizeof(Collection));
  init_Col(collection);
  return collection;
}

void detruire_Col(Collection ** collection)
{
  if((*collection))
    {
      liberer_Col((*collection));
      free((*collection));
      (*collection) = NULL;
    }
}

void copier_Col(Collection **dest, const Collection *src)
{
  if((*dest) == NULL)
    (*dest) = creer_Col();
  if(src)
    {
      (*dest)->id = src->id;
      if(src->libelle)
	copier_Uti(&((*dest)->libelle), src->libelle);
    }
}
unsigned int getId_Col(const Collection * ptr)
{
  if(ptr)
    return ptr->id;
  return 0;
}

void setId_Col(Collection *ptr, const unsigned int val)
{
  if(ptr)
    ptr->id = val;
}

char * getLibelle_Col(const Collection * ptr)
{
  if(ptr)
    return ptr->libelle;
  return NULL;
}

void setLibelle_Col(Collection *ptr, const char * val)
{
  if(ptr)
    {
      copier_Uti(&(ptr->libelle), val);
    }
}

int getNbLivre_Col(const Collection * ptr)
{
  if(ptr)
    return ptr->nbLivre;
  return 0;
}

void setNbLivre_Col(Collection *ptr, const int val)
{
  if(ptr)
    {
      ptr->nbLivre = val;
    }
}

void setMaj_Col(Collection *ptr, const char b)
{
  if(ptr)
    {
      ptr->maj = b;
      if(b == 1)
	ptr->sup = !b;
    }
}

char getMaj_Col(const Collection *ptr)
{
  if(ptr)
    return ptr->maj;
  return 0;
}

void setSup_Col(Collection *ptr, const char b)
{
  if(ptr)
    {
      ptr->sup = b;
      if(b == 1)
	ptr->maj = !b;
    }
}

char getSup_Col(const Collection *ptr)
{
  if(ptr)
    return ptr->sup;
  return 0;
}
